package com.qf.controller;

import com.qf.utils.WXPayUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletResponse;
import java.util.Map;

@RequestMapping("/wx")
@Controller
public class WxResultController {

    // 这个接口由微信来调用(用户支付成功后)
    @RequestMapping("/resultUrl")
    @ResponseBody
    public void resultUrl(@RequestBody String xml, HttpServletResponse response) throws Exception {
        System.out.println("用户调用了我们的回调的接口，我们可以在这里把订单的状态修改为已支付");
        System.out.println(xml);

        Map<String, String> notifyMap = WXPayUtil.xmlToMap(xml);

        // 订单编号
        String out_trade_no = notifyMap.get("out_trade_no");

        // 1.判断这个订单是否已经处理过了(是否已经支付了)

        // 2.如果已经处理过了，直接告诉微信这个订单我已经处理了，你不要在推给我

        // 3.如果没有处理过，修改订单的状态，然后通知微信，这个订单我处理完了

        String result_code = notifyMap.get("result_code"); // 支付的状态

        // 4.做出应答
        response.getWriter().write("<xml>\n" +
                "  <return_code><![CDATA[SUCCESS]]></return_code>\n" +
                "  <return_msg><![CDATA[OK]]></return_msg>\n" +
                "</xml>");
    }
}
